Processing devices, such as line cards attached to a router, have finite resources and thus generally include a queuing scheme to queue requests that cannot be immediately processed. As the processing device's queuing memory begins to fill up, the processing device sends a congestion message in band through switching fabric of the router to request a reduced traffic flow. The congestion message is sometimes delayed due to congestion in the switching fabric. When the congestion message is delayed, the processing devices may continue receiving incoming traffic that can fill up the local queuing resources causing a deadlock or packet loss situations within the router.
The deadlock or packet loss situation can lead to an unresponsive router or poor router performance. Designers have attempted to address the above-described deadlock or packet loss situation by increasing queuing resources within each processing device, which reduces the need for congestion messages. However, this partial solution is expensive and does not eliminate deadlocks or packet losses. The disclosure that follows solves this and other problems.